package spring_learn.a07;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;


/*
Spring 提供了多种初始化手段，除了 @PostConstruct，@Bean(initMethod) 之外，还可以实现 InitializingBean 接口来进行初始化，如果同一个 bean 用了以上手段声明了 3 个初始化方法，那么它们的执行顺序是

1. @PostConstruct 标注的初始化方法
2. InitializingBean 接口的初始化方法
3. @Bean(initMethod) 指定的初始化方法

顺序：   postConstruct Annotation
        initializingBean interface
        init method
 */
public class Bean1_07 implements InitializingBean {
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("initializingBean interface");
    }

    @PostConstruct
    public void init1(){
        System.out.println("postConstruct Annotation");
    }

    public void init(){
        System.out.println("init method");
    }


}
